const MyPromise = require('./MyPromise')

// new Promise((resolve, reject) => {
//   // setTimeout(() => {
//   reject(123)
//   // }, 1000);
// }).finally(a => {
//   console.log(a)
// }).finally(a => {
//   console.log(a)
// })
// return
// const promise = new MyPromise((resolve, reject) => {
//   console.log('start')
//   // resolve('start')
//   setTimeout(() => {
//     resolve('start')
//   }, 1110);

// })
//   .then(result => {
//     console.log('then1 ' + result)
//     return new MyPromise((resolve, reject) => {
//       setTimeout(() => {
//         resolve('then1 ' + result)
//       }, 1110);

//     })
//   })
//   .then(result => {
//     console.log('then2 ' + result)
//     return new MyPromise((resolve, reject) => {
//       setTimeout(() => {
//         reject('then2 ' + result)
//       }, 1110);

//     })
//   }).catch(e => {
//     console.log(e.message)
//   })

function a () {
  return new MyPromise((resolve, reject) => {
    console.log('a')
    setTimeout(() => {
      resolve('a')
    }, 1000);
  })
}

function b () {
  return new MyPromise((resolve, reject) => {
    console.log('b')
    resolve('b')
  })
}

MyPromise.all([a(), b()]).then(value => {
  console.log(value)
}).finally(() => {
  console.log(123)
}).finally(() => {
  console.log(123)
}).catch(e => {
  console.log(e)
}).finally(() => {
  console.log(123)
})